package com.zhkj.shixi.tvplayer;

import android.app.Activity;
import android.content.DialogInterface;
import android.media.MediaPlayer;
import android.util.Log;

import com.zhkj.shixi.tvplayer.PicturePlayer.CommonDialog;

/**
 * Created by chenhao on 19-8-12.
 */

public class MediaPlayerError implements MediaPlayer.OnErrorListener{
    private static final String TAG = "MediaPlayerError";
    private Activity mActivity;
    public MediaPlayerError(Activity activity){
        mActivity =activity;
    }
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.e(TAG, "onError: "+what+"----------"+extra);
        CommonDialog.Builder builder =new CommonDialog.Builder(mActivity);
        builder.setTitle("ERROR");
        builder.setNegativeButton("退出", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
//                builder.setPositiveButton("重新播放", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        dialog.dismiss();
//                    }
//                });
        switch (what) {
//            case -38:
//                builder.setMessage("文件错误");
//                builder.create().show();
//                mp.reset();
//                mp.release();
            case -1004:
                builder.setMessage("文件不存在或者网络出现错误");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "文件不存在或者网络出现错误 ");
                break;
            case -1007:
                builder.setMessage("比特流不符合编码标准或者文件规格");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "比特流不符合编码标准或者文件规格 ");
                break;
            case 200:
                builder.setMessage("视频流及其容器不适用于连续播放视频的指标");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "视频流及其容器不适用于连续播放视频的指标");
                break;
            case 100:
                builder.setMessage("媒体服务关闭");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "媒体服务关闭");
                break;
            case -110:
                builder.setMessage("一些操作使用了过长的时间");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "一些操作使用了过长的时间");
                break;
            case 1:
                builder.setMessage("未知错误");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "未知错误");
                break;
            case -1010:
                builder.setMessage("比特流符合相关编码标准或文件的规格，但媒体框架不支持此功能");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "比特流符合相关编码标准或文件的规格，但媒体框架不支持此功能");
                break;
        }
        switch (extra) {
            case 800:
                builder.setMessage("音频和视频数据不正确");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "音频和视频数据不正确");
                break;
            case 702:
                builder.setMessage("MediaPlayer在缓冲完后继续播放");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "MediaPlayer在缓冲完后继续播放");
                break;
            case 701:
                builder.setMessage("MediaPlayer暂停播放等待缓冲更多数据");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "MediaPlayer暂停播放等待缓冲更多数据");
                break;
            case 801:
                builder.setMessage("不可设置播放位置（直播）");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "不可设置播放位置，直播方面");
                break;
            case 1:
                builder.setMessage("文件信息未知");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "文件信息未知");
                break;
            case 3:
                builder.setMessage("音频开始整备中");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "音频开始整备中 ");
                break;
            case 700:
                builder.setMessage("视频编码过于复杂，解码器无法足够快的解码出帧");
                builder.create().show();
                mp.reset();
                mp.release();
                Log.d(TAG, "视频编码过于复杂，解码器无法足够快的解码出帧 ");
                break;
        }
        return true;
    }
}
